/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Codigo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author kyerte
 */
public class ConsultaComentariosCliente {

    private Connection conexion = null;
    private PreparedStatement consultarComentariosCliente = null;
    private PreparedStatement insertarComentariosCliente = null;
    private PreparedStatement actualizarComentariosCliente = null;
    private PreparedStatement eliminarComentariosCliente = null;
    private PreparedStatement obtenerIdComentarios = null;

    ConsultaComentariosCliente() {
        conexion = FrmPrincipal.conexion;
        try {
            consultarComentariosCliente = conexion.prepareStatement("SELECT * FROM "
                    + "ComentariosCliente WHERE idComentarios=?");
            insertarComentariosCliente = conexion.prepareStatement("INSERT INTO "
                    + "ComentariosCliente(idResultadosVisita, Comentarios, Ubicacion, "
                    + "Relacion, ComentariosOtros, Observaciones) VALUES(?,?,?,?,?,?)");
            actualizarComentariosCliente = conexion.prepareStatement("UPDATE "
                    + "ComentariosCliente SET Comentarios=?, Ubicacion=?, "
                    + "Relacion=?, ComentariosOtros=?, Observaciones=? WHERE idComentarios=?");
            eliminarComentariosCliente = conexion.prepareStatement("DELETE FROM ComentariosCliente"
                    + " WHERE idComentarios=?");
            obtenerIdComentarios = conexion.prepareStatement("SELECT idComentarios FROM "
                    + "ComentariosCliente WHERE idResultadosVisita=?");
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
    }

    public ComentariosCliente consultarComentariosCliente(int idComen) {
        ComentariosCliente resultado = null;
        ResultSet conjuntoResultados = null;
        try {
            consultarComentariosCliente.setInt(1, idComen);
            conjuntoResultados = consultarComentariosCliente.executeQuery();
            while (conjuntoResultados.next()) {
                resultado = new ComentariosCliente(
                        conjuntoResultados.getInt("idComentarios"),
                        conjuntoResultados.getInt("idResultadosVisita"),
                        conjuntoResultados.getString("Comentarios"),
                        conjuntoResultados.getInt("Ubicacion"),
                        conjuntoResultados.getInt("Relacion"),
                        conjuntoResultados.getString("ComentariosOtros"),
                        conjuntoResultados.getString("Observaciones"));
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                conjuntoResultados.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
                close();
            }
        }
        return resultado;
    }

    public int insertarComentariosCliente(int idResultadosVisita, String comentarios, int ubicacion,
            int relacion, String comentariosOtros, String observaciones) {
        int resultado = 0;

        try {

            insertarComentariosCliente.setInt(1, idResultadosVisita);
            insertarComentariosCliente.setString(2, comentarios);
            insertarComentariosCliente.setInt(3, ubicacion);
            insertarComentariosCliente.setInt(4, relacion);
            insertarComentariosCliente.setString(5, comentariosOtros);
            insertarComentariosCliente.setString(6, observaciones);

            resultado = insertarComentariosCliente.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
        return resultado;
    }

    public int actualizarComentariosCliente(String comentarios, int ubicacion,
            int relacion, String comentariosOtros, String observaciones, int id) {
        int resultado = 0;

        try {

            actualizarComentariosCliente.setString(1, comentarios);
            actualizarComentariosCliente.setInt(2, ubicacion);
            actualizarComentariosCliente.setInt(3, relacion);
            actualizarComentariosCliente.setString(4, comentariosOtros);
            actualizarComentariosCliente.setString(5, observaciones);
            actualizarComentariosCliente.setInt(6, id);

            resultado = actualizarComentariosCliente.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
        return resultado;
    }

    public int eliminarComentariosCliente(int id) {
        int resultado = 0;

        try {
            eliminarComentariosCliente.setInt(1, id);
            resultado = eliminarComentariosCliente.executeUpdate();
        } catch (SQLException ex) {
            close();
        }

        return resultado;
    }

    public int obtenerIdComentarios(int idResultados) {

        int id = 0;
        ResultSet conjuntoResultados = null;

        try {

            obtenerIdComentarios.setInt(1, idResultados);
            conjuntoResultados = obtenerIdComentarios.executeQuery();

            while (conjuntoResultados.next()) {
                id = conjuntoResultados.getInt("idComentarios");
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
        return id;
    }

    public int obtenerIdUltimoRegistro() {
        int ultimoId = 0;
        ResultSet conjuntoResultados = null;
        try {
            Statement instruccion = conexion.createStatement();
            conjuntoResultados = instruccion.executeQuery("SELECT MAX(idComentarios) "
                    + "AS id FROM ComentariosCliente");

            while (conjuntoResultados.next()) {
                ultimoId = conjuntoResultados.getInt("id");
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();

        }

        return ultimoId;
    }

    private void close() {
        try {
            conexion.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}
